Site cover image

Site icon imageSen(Qian)’s Memo

This website is Donglin Qian (Torin Sen)’s memo, especially about machine learning papers and competitive programming.

2020-onlyarxiv-A Novel Perspective for Positive-Unlabeled Learning via Noisy Labels

https://arxiv.org/abs/2103.04685

Arxivにしかないので信頼度はある程度差し置いたほうがいい。

📄Arrow icon of a page link2022-CVPR-[Dist-PU] Positive-Unlabeled Learning from a Label Distribution Perspective のMix-upがない版の研究である。これは一応書いたけどDist-PUでOKだが、最後のPseudo Labelの更新だけはモデルの出力するラベル分布予測の移動平均である。

Method

Image in a image block

すべてのUにPかNのPseudo Labelを付与して、Noisy Labelの手法を用いて、そのPseudo Labelを更新していくことで最終的に学習器を訓練していく。

最小化する式は以下の通り

Image in a image block

本体

本体は以下のようになる。Pに対するloss(これは明確にラベルがPだとわかるので)LpL_pと、UをNoisy Labelとみなして、sigmoid関数ffでcalibrationした結果がPseudo Labelの連続値のyiy_iと合致するようにしている。

Lclass(g)=λLP(g)+LU(g)LP(g)=E+[l(g(x),+1)]LU(g)=EX[DKL([yi1yi][f(g(xiu))1f(g(xiu))])]L_{class}(g) = \lambda L_P(g) + L_U(g) \\ L_P(g) = \mathbb{E}_+[l(g(\mathbf{x}), +1)] \\ L_U(g) = \mathbb{E}_X[D_{KL}(\begin{bmatrix} y_i \\ 1 - y_i \end{bmatrix} || \begin{bmatrix} f(g(x_i^u)) \\ 1 - f(g(x_i^u)) \end{bmatrix} )]

学習を進めるにつれて、λ\lambdaは大きい値から線形に1/nU1/n_Uまで減らすらしい。減らさないとこの手法の意味がない。

正則化

正則化項は2つ存在する。

まずは、calibrationして予測した結果の平均は、Class Priorと合致させないといけないというもの。これはあとの📄Arrow icon of a page link2022-CVPR-[Dist-PU] Positive-Unlabeled Learning from a Label Distribution Perspective とも同じidea。

Lreg1=EX[DKL([πP1πP][f(g(x))1f(g(x))])]L_{reg1} = \mathbb{E}_X[D_{KL}( \begin{bmatrix} \pi_P \\ 1 - \pi_P \end{bmatrix} || \begin{bmatrix} f(g(\mathbf{x})) \\ 1 - f(g(\mathbf{x})) \end{bmatrix} )]

次に、この予測結果をばらけさせたいので、Dist-PUと同様に、以下のものをつける。

Lreg=EX[f(g(x))logf(g(x))+(1f(g(x)))log(1f(g(x)))]L_{reg} = \mathbb{E}_X[f(g(\mathbf{x})) \log f(g(\mathbf{x})) + (1 - f(g(\mathbf{x}))) \log (1 - f(g(\mathbf{x})))]

Pseudo Labelの初期値とアップデート

すべてのUについて、初期のPseduo Labelはyi=πPy_i = \pi_Pと一律に設定。これはKL-Divergenceを最小化するもの。

更新については、モデルの過去数エポックの出力したラベル予測分布の平均をPseudo Labelとして更新する